package com.yonyou.gmmc.dealerApp.api.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.marketing.common.dto.maintain.MaintainDto;
import org.marketing.common.dto.maintain.MaintainFrecordDto;
import org.marketing.common.dto.maintain.MaintainVo;
import org.marketing.common.dto.search.DealerAppSearchDto;
import org.marketing.common.dto.showroom.BrandExhibitionDto;

import com.yonyou.gmmc.common.annotation.MySQLDb;
import com.yonyou.gmmc.common.annotation.OracleDb;
import com.yonyou.gmmc.dealerApp.api.entity.MaintainFrecordPO;
import com.yonyou.gmmc.dealerApp.api.model.TtReservation;
import tk.mybatis.mapper.common.Mapper;
//@MySQLDb
@OracleDb
public interface TtReservationMapper extends Mapper<TtReservation> {
	/**
     * @author Wang HuiCheng 获取品牌车系展示数据
     * @date 2016年11月1日
     * @param brandCode
     * @return
     */
    public List<BrandExhibitionDto> queryBrandExhibitionData(@Param("brandCode") String brandCode);

    /**
     * 保存养修预约信息
     *
     * @author Administrator
     * @date 2016年11月3日
     * @param maintainDto
     */
    public void save(@Param("maintainDto") MaintainDto maintainDto);

    
    /**
     * 
    *
    * @author WangHuicheng
    * TODO description
    * @date 2016年11月22日
    * @param dealerCode
    * @param salesConsultantId
    * @param status
    * @param startDateFrom
    * @param startDateEnd
    * @return
     */
    public List<MaintainVo> getMaintainInfo(@Param("dealerCode")String dealerCode,
                                            @Param("salesConsultantId") Integer salesConsultantId,
                                            @Param("status") Integer status,
                                            @Param("startDateFrom")  String startDateFrom,
                                            @Param("startDateEnd") String startDateEnd);

    /**
    *
    * @author QIanKun
    * 养修预约列表查询
    * @date 2016年11月17日
    * @param userId
    * @return
    */
    public List<MaintainDto> queryMaintainData(@Param("userId") Long userId);
    
    /**
    *
    * @author QianKun
    * 养修预约详情查询
    * @date 2016年11月17日
    * @param resnId
    * @return
    */
    public List<MaintainDto> queryMaintainDataById(@Param("resnId") Long resnId);
    
    /**
     * 
    * 养修预约跟进表保存
    * @author WangHuicheng
    * @date 2016年11月25日
    * @param maintainFrecordDtoPO
    * @return
     */
    public Long insertMaintainFrecord(MaintainFrecordPO maintainFrecordDtoPO);
    
    /**
     * 
    *
    * @author WangHuicheng
    * TODO description
    * @date 2016年11月25日
    * @param dealerAppSearchDto
    * @return
    * @throws ServiceAppException
    * @throws ServiceBizException
     */
    public List<MaintainDto> getMaintainInfoList(DealerAppSearchDto dealerAppSearchDto);
    
    /**
     * 
    * 养修预约状态变更
    * @author WangHuicheng
    * @date 2016年11月25日
    * @param maintainFrecordDto
     */
    public void updateMaintainAppointStatus(MaintainFrecordDto maintainFrecordDto);
    
    
    /**
     * 售后抢客户
    * 
    * @author WangHuicheng
    * @date 2016年12月14日
    * @param maintainDto
     */
    public void updateMaintain4rush(MaintainDto maintainDto);

}